Currently, storage media of a processing system of distributed data storage space may be a serial advanced technology attachment (SATA) disk, a serial attached SCSI (SAS) disk, and a solid state disk (SSD) disk/card. With the development of hardware manufacturing technologies, a storage capacity of a single disk is constantly improved. However, a random IO (input output) capability of the disk is not be improve in proportion. The random IO capability of the storage media is a potential performance bottleneck. An idea for addressing the random IO performance bottleneck of the storage media is mainly to change the random IO to sequential IO or use a cache to reduce the number of times of IO. Random read is inevitable in most service storage access scenarios. Therefore, a memory Cache is generally used to reduce access to the storage media or change the storage media. For example, an SSD disk/card with high random read performance is alternatively used for optimization. For optimization of random write IO, random write may be changed to sequential write (such as SSTable of BigTable), or mmap maps data to memory for performing asynchronous IO.
Other existing manners for improving random IO are as follows: Google BigTable implements IO performance optimization by changing random write to sequential write, updates and stores all data within a period of time together and sequentially writes the data onto a disk by using MemTable and SSTable, divides a record according to a pre-defined sequence, and then combines data obtained after dividing with data of an earlier version; TyotoCabinet maps data on a disk to shared memory by using mmap, and reduces read and write on the disk by using the memory; an InnoDB storage engine of MySQL uses a B+ tree organization manner at a bottom layer, and also uses a Buffer Pool (buffer pool) to change write to asynchronous write, so as to improve write delay experience and reduce read and write on a disk.
The existing manners for improving random IO have the following disadvantages: Implementation of a system for changing random write to sequential write is complex, and an operation cost is high; in the manner for changing random write to sequential write by using the MemTable/SSTable, multiple pieces of data may need to be read during data reading, so as to obtain a latest data version. In addition, data read and write need to be executed on a large scale when data combination is performed, and operations such as splitting may also be performed, so that a system is complex, and an operation and maintenance cost is high. For the mmap and the buffer pool solution of MySQL, if a storage capacity of a single machine is higher than the memory and there is no obvious data hotspot, overall IO performance of the system lies in an actual capability of storage media, and efficiency for the memory to improve IO performance is limited.